Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Normal mapping</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Normal_mapping"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Normal_mapping rootpage-Normal_mapping skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Normal mapping</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">

<p>En <a href="Imagerie_num%C3%A9rique" class="mw-redirect" title="Imagerie numérique">imagerie numérique</a>, le <b>normal mapping</b> est une technique utilisée pour feindre le relief d'une texture.
</p><p>Cette technique est utilisée pour simuler graphiquement des détails géométriques, sans ajouter de polygones à la géométrie réelle. Elle permet donc d'améliorer la qualité graphique avec un faible coût en matière de ressources utilisées et est donc destinée à une utilisation en <a href="3D_temps_r%C3%A9el" title="3D temps réel">3D temps réel</a> pour la prévisualisation d'objets complexes ou, plus communément, dans les jeux vidéo.
</p><p>Une "normal map" (carte de normales) est habituellement une image <a href="Rouge-vert-bleu" title="Rouge-vert-bleu">RVB</a> où les composantes fournissent les coordonnées X, Y et Z de la <a href="Normale_%C3%A0_une_surface" class="mw-redirect" title="Normale à une surface">normale</a> du <a href="Texel_(infographie)" title="Texel (infographie)">texel</a> de la texture correspondante. Dit autrement, chaque <a href="Pixel" title="Pixel">pixel</a> de la normal map est en réalité un vecteur fournissant l'information d'élévation et d'inclinaison de sa surface, c'est-à-dire, de la surface du texel sur lequel sera appliqué la normal map. On l'utilise donc telle une texture, en complément de la texture diffuse <i>(et éventuellement de textures d'autres types - tels que les <a href="Lightmap" title="Lightmap">lightmap</a>)</i>.
</p><p>On reconnait généralement ces textures à leur prédominance de magenta. Il est à noter qu'elles peuvent être de résolution différente de leur texture de destination selon les besoins.
</p><p>Techniquement, les informations qu'elles fournissent peuvent être utilisées dans différents algorithmes de rendu, dont les principaux sont le <a href="Placage_de_relief" title="Placage de relief">bump mapping</a> et le <a href="Parallax_mapping" title="Parallax mapping">parallax mapping</a>. Le rendu final pourra donc être différent selon les moteurs graphiques et leurs spécificités <i>(typiquement, l'inversion de coordonnées)</i>. Le bump mapping utilisera ces informations afin d'émuler l'ombrage des surfaces <i>(les rendant ainsi rugueuses)</i> tandis que le parallax mapping émulera graphiquement l'épaisseur <i>(en procédant à un décalage du texel selon Z)</i>. Les deux techniques étant souvent cumulatives puisque n'agissant pas sur les mêmes principes <i>(XY pour le primitif bump mapping, Z pour la parallaxe)</i>.
</p><p>Si l'idée de base est de donner du relief aux textures, cette technique permet également d'économiser des polygones. En effet, certains logiciels permettent de créer une normal map d'un objet complexe afin de l'appliquer sur le même objet mais à la géométrie simplifiée <i>(cf. l'illustration)</i> et donc, d'en conserver graphiquement tous les détails. Ceci permet donc de réduire drastiquement le nombre de polygones de l'objet à gérer en temps réel, sans une trop grande perte de qualité. Ou, inversement, d'améliorer la finesse graphique d'un objet 3D avec peu de polygones <i>(donc, sans en augmenter son maillage)</i>.
</p><p>Le normal mapping n'est donc pas une technique de rendu, mais une technique de capture <i>(de l'information "relief")</i>. Ainsi, on la retrouve autant dans les jeux vidéo que dans l'industrie à travers, par exemple, les scanner 3D. Elle a également révolutionné les méthodes de travail des infographistes 3D qui, grâce à elle, a vu l'émergence de logiciels de sculpture virtuelle <i>(tel que le célèbre <a href="ZBrush" title="ZBrush">ZBrush</a>)</i>. Très gourmands en polygones lors de la création d'objets, ces logiciels ont permis une certaine libération de l'expression artistique en réduisant les contraintes techniques liées à la création. Et ceci, tout en garantissant des performances excellentes en sortie <i>(via la simplification géométrique des objets ainsi créées, en couple "objet low-poly + normal map")</i> dans l'optique d'intégrer ces objets à des scènes plus complexes sans dépasser les contraintes techniques <i>(liées à l'évolution des matériels informatiques)</i>.
</p><p>Il est à noter que <a href="NVidia" class="mw-redirect" title="NVidia">nVidia</a> a mis gratuitement à la disposition du public un <a href="Plugin" title="Plugin">plugin</a> dédié au logiciel <a href="Photoshop" class="mw-redirect" title="Photoshop">Photoshop</a> pour générer des normal maps à partir de textures, selon différents paramètres, mais essentiellement fondé sur les variations colorimétriques. La création manuelle de normal map passera généralement d'abord par la création <i>(ou l'utilisation)</i> de leur <a href="Height_map" class="mw-redirect" title="Height map">height map</a> <i>(carte des hauteurs Z, généralement en nuances de gris)</i> avant d'être convertie <i>(en prenant en compte l'inclinaison entre chaque niveau des texels)</i>.
</p><p>Il est également à noter que l'utilisation d'une normal map conjointement avec les techniques de rendu du bump et du parallax mapping constitue une alternative plus performante <i>(en matière de vitesse de rendu)</i> mais qualitativement <i>(i.e. graphiquement)</i> moins bonne à la technique du <a href="Displacement_mapping" title="Displacement mapping">displacement mapping</a> <i>(n'utilisant qu'une <a href="Height_map" class="mw-redirect" title="Height map">height map</a>, la jointure des niveaux Z s'effectuant par le moteur de rendu)</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Parallax_mapping" title="Parallax mapping">Parallax mapping</a></li>
<li><a href="Placage_de_relief" title="Placage de relief">Placage de relief</a></li>
<li><a href="Low_poly" title="Low poly">Low poly</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Lien_externe">Lien externe</h3></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://wiki.blender.org/index.php/Doc:Manual/Textures/Maps/Bump_and_Normal_Maps">Normal mapping</a> sur le wiki de <a href="Blender" title="Blender">Blender</a></li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2024-04-19" href="https://fr.wikipedia.org/wiki/?title=Normal_mapping&amp;oldid=214390696">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>